
package structure;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.LinkedList;
import java.util.TreeMap;
import java.util.Vector;

/**
 * Enumération des structure disponible.
 * 
 * @author David Bernard
 * 
 */
public enum Structure
{
	/**
	 * String représentant la structure VECTOR.
	 * 
	 * @see Vector
	 */
	Vector,

	/**
	 * String représentant la structure LinkedList
	 * 
	 * @see LinkedList
	 */
	LinkedList,

	/**
	 * String représentant la structure ArrayList
	 * 
	 * @see ArrayList
	 */
	ArrayList,

	/**
	 * String correspondant au hashmap.
	 * 
	 * @see HashMap
	 */
	HashMap,

	/**
	 * String correspondant au treemap.
	 * 
	 * @see TreeMap
	 */
	TreeMap,

	/**
	 * String correspondant au hashtable.
	 * 
	 * @see Hashtable
	 */
	Hashtable,

	/**
	 * Structure de donné basé sur une matrice.
	 */
	Tableau,
	
	
	/**
	 * Structure de donné basé sur un arbre binaire.
	 */
	ArbreBinaire;

	/**
	 * Permet d'associé un String avec un object Enum.
	 * 
	 * @param nomStructure un String correspondant a la structure.
	 * 
	 * @return Retourne la constante de structure.
	 */
	public static Structure trouverAvecNom(String nomStructure)
	{
		Structure[] structures = Structure.values();
		Structure buffer = null;
		Structure out = null;

		if (nomStructure != null)
		{
			for (int i = 0; i < structures.length && (out == null); i++)
			{
				buffer = structures[i];
				if (nomStructure.equalsIgnoreCase(buffer.name()))
				{
					out = buffer;
				}
			}
		}
		return out;
	}
}
